#ifndef _SOURCE_UIOPTIONS_H_
#define _SOURCE_UIOPTIONS_H_


//-----------------------------------------------------------------------------------
/// define structure to store options get from option UI after user click 'OK'.The 
/// structure is global and could be used by anywhere.
//-------------------------------------------------------------------------------------


//-------------------------------------------------------------------------------------
/// struct UIOptions : store options user select here.
//--------------------------------------------------------------------------------------

enum ExportEle
{
	ExportEle_Position = 0,
	ExportEle_Texcoord,
	ExportEle_Normal,
	ExportEle_Tangent,
	ExportEle_Binormal,
	ExportEle_Color,
	ExportEle_Skin,
	ExportEle_Count
};

enum ExportObject
{
	ExportObject_Mesh = 0,
	ExportObject_Dummy,
	ExportObject_Camera,
	ExportObject_Light,
	ExportObject_Bones,
	ExportObject_Anim,
	ExportObject_Count
};

const int g_maxExportPath = 256;
const int g_maxChannel = 8;

struct UIOptions
{
	int isExportSelected;                              // if only export selected object.
	unsigned int exportBits;                           // export type, operate 'and' with ExportEle
	unsigned int exportBitsChannel[ExportEle_Count];  // channel count for every type
	unsigned int exportObjects;                        // bits of object type to export
	char fileName[256];                    // export file name

	static unsigned int exportElementMask = 0;
	static unsigned int exportObjectMask = 0;

	UIOptions(void);
};

const UIOptions& GetExportOption(void);


void OpenOptionDialog(void);


#endif // #ifndef _SOURCE_UIOPTIONS_H_